(deftemplate intrebare
    (slot stringIntrebare)
    (slot raspuns)
    )
(deftemplate credit
    (slot nume))
(assert (intrebare (stringIntrebare nil)(raspuns nil)))
(assert (credit (nume nil)))

(defrule q
     (declare (salience 100))
(intrebare (stringIntrebare nil)(raspuns nil))
=>
(printout t "Aveti cerere de credit? (DA/NU)" crlf)
(bind ?r (read))
(assert (intrebare (stringIntrebare "Aveti cerere de credit?")(raspuns ?r)))
)
(defrule r1
     (declare (salience 99))
(intrebare (stringIntrebare "Aveti cerere de credit?")(raspuns NU))
=>
(printout t "Completati o cerere de credit." crlf)
)
(defrule q0
     (declare (salience 78))
	(intrebare (stringIntrebare "Aveti cerere de credit?")(raspuns DA))
	=>
	(printout t "Aveti copie dupa BI? (DA/NU)" crlf)
	(bind ?r (read))
	(assert (intrebare (stringIntrebare "Aveti copie dupa BI")(raspuns ?r)))
	)
(defrule r2
     (declare (salience 75))
(intrebare (stringIntrebare "Aveti copie dupa BI")(raspuns NU))
=>
(printout t "Faceti o copie dupa BI/CI" crlf)
)
(defrule r22

(intrebare (stringIntrebare "Aveti adeverinta de venit")(raspuns NU))
=>
(printout t "Nu aveti toate actele necesare acordarii creditului bancar." crlf)
)
(defrule q0a
    
	(intrebare (stringIntrebare "Aveti copie dupa BI")(raspuns DA))
	=>
	(printout t "Aveti adeverinta de venit ? (DA/NU)" crlf)
	(bind ?r (read))
	(assert (intrebare (stringIntrebare "Aveti adeverinta de venit?")(raspuns ?r)))
	)
(defrule q1
    
	(intrebare (stringIntrebare "Aveti adeverinta de venit?")(raspuns DA))
	=>
	(printout t "Doriti un credit de studii ? (DA/NU)" crlf)
	(bind ?r (read))
	(assert (intrebare (stringIntrebare "Doriti un credit de studii")(raspuns ?r)))
	)
(defrule q2
(intrebare (stringIntrebare "Doriti un credit de studii")(raspuns NU))
=>
	(printout t "Aveti fisa fiscala ? (DA/NU)" crlf)
	(bind ?r (read))
	(assert (intrebare (stringIntrebare "Aveti fisa fiscala?")(raspuns ?r)))
)
(defrule q3
(intrebare (stringIntrebare "Doriti un credit de studii")(raspuns DA))
=>
	(printout t "Aveti diploma de licenta ? (DA/NU)" crlf)
	(bind ?r (read))
	(assert (intrebare (stringIntrebare "Aveti diploma de licenta?")(raspuns ?r)))
)
(defrule r3
(intrebare (stringIntrebare "Aveti diploma de licenta?")(raspuns NU))
=>
	(printout t "Nu aveti toate actele necesare." crlf)
)
(defrule q4
(intrebare (stringIntrebare "Aveti diploma de licenta?")(raspuns DA))
=>
	(printout t "Aveti acte doveditoare bursa ? (DA/NU)" crlf)
	(bind ?r (read))
	(assert (intrebare (stringIntrebare "Aveti acte doveditoare bursa?")(raspuns ?r)))
)
(defrule r4
(intrebare (stringIntrebare "Aveti acte doveditoare bursa?")(raspuns NU))
=>
	(printout t "Nu aveti toate actele necesare." crlf)
)
(defrule q5
(intrebare (stringIntrebare "Aveti acte doveditoare bursa?")(raspuns DA))
=>
	(printout t "Aveti acceptul institutiei de invatamant ? (DA/NU)" crlf)
	(bind ?r (read))
	(assert (intrebare (stringIntrebare "Aveti acceptul institutiei de invatamant?")(raspuns ?r)))
)
(defrule r5
(intrebare (stringIntrebare "Aveti acceptul institutiei de invatamant?")(raspuns NU))
=>
	(printout t "Nu aveti toate actele necesare." crlf)
)
(defrule q6
(intrebare (stringIntrebare "Aveti acceptul institutiei de invatamant?")(raspuns DA))
=>
	(assert (credit (nume creditDeStudii)))
    (printout t "Vi s-a acordat creditul pentru studii." crlf)
)
(defrule q7
	(intrebare (stringIntrebare "Aveti fisa fiscala?")(raspuns DA))
	=>
	(printout t "Aveti factura de utilitati ? (DA/NU)" crlf)
	(bind ?r (read))
	(assert (intrebare (stringIntrebare "Aveti factura de utilitati?")(raspuns ?r)))
	)
(defrule q8
(intrebare (stringIntrebare "Aveti fisa fiscala?")(raspuns NU))
=>
	(printout t "Aveti factura performa de la dealer ? (DA/NU)" crlf)
	(bind ?r (read))
	(assert (intrebare (stringIntrebare "Aveti factura performa de la dealer?")(raspuns ?r)))
)
(defrule q9
    (intrebare(stringIntrebare "Aveti factura performa de la dealer?")(raspuns DA))
    =>
    (assert (credit (nume creditAuto)))
    (printout t "Vi s-a acordat creditul auto." crlf)
    )
(defrule r6
    (intrebare(stringIntrebare "Aveti factura performa de la dealer?")(raspuns NU))
    =>
    (printout t "Nu aveti toate actele necesare." crlf)
    )
(defrule r7
    (intrebare (stringIntrebare "Aveti factura de utilitati?")(raspuns NU))
    =>
     (assert (credit (nume creditInMagazin)))
    (printout t "Vi s-a acordat creditul in magazin." crlf)
    )
(defrule q10
    (intrebare (stringIntrebare "Aveti factura de utilitati?")(raspuns DA))
    =>
    (printout t "Aveti acte proprietate garantie ? (DA/NU)" crlf)
	(bind ?r (read))
	(assert (intrebare (stringIntrebare "Aveti acte proprietate garantie ?")(raspuns ?r)))
    )
(defrule q11
    (intrebare(stringIntrebare "Aveti acte proprietate garantie ?")(raspuns DA))
    =>
     (printout t "Aveti extras de carte funciara ? (DA/NU)" crlf)
	(bind ?r (read))
	(assert (intrebare (stringIntrebare "Aveti extras de carte funciara?")(raspuns ?r)))
    )
(defrule r8
    (intrebare (stringIntrebare "Aveti acte proprietate garantie?")(raspuns NU))
    =>
      (printout t "Nu aveti toate actele necesare." crlf)
    )
(defrule q12
    (intrebare (stringIntrebare "Aveti extras de carte funciara?")(raspuns DA))
    =>
    (printout t "Aveti raport de evaluare pentru bunul imobiliar adus drept garantie ? (DA/NU)" crlf)
	(bind ?r (read))
	(assert (intrebare (stringIntrebare "Aveti raport de evaluare pentru bunul imobiliar adus drept garantie?")(raspuns ?r)))
    )
(defrule r9
    (intrebare (stringIntrebare "Aveti raport de evaluare pentru bunul imobiliar adus drept garantie?")(raspuns NU))
    =>
        (assert (credit (nume creditNevoiPersoanale)))
    (printout t "Vi s-a acordat creditul de nevoi speciale." crlf)
    )
(defrule q13
    (intrebare (stringIntrebare "Aveti raport de evaluare pentru bunul imobiliar adus drept garantie?")(raspuns DA))
    =>
    (printout t "Aveti documente necesare constituirii ipotecii ? (DA/NU)" crlf)
	(bind ?r (read))
	(assert (intrebare (stringIntrebare "Aveti documente necesare constituirii ipotecii?")(raspuns ?r)))
    )
(defrule r10
    (intrebare (stringIntrebare "Aveti documente necesare constituirii ipotecii?")(raspuns NU))
    =>
        (printout t "Nu aveti toate actele necesare." crlf)
    )
(defrule q14
    (intrebare (stringIntrebare "Aveti documente necesare constituirii ipotecii?")(raspuns DA))
    =>
    (assert (credit (nume creditIpotecar)))
    (printout t "Vi s-a acordat creditul ipotecar." crlf)
    )

(facts)
(agenda)
(run)